package com.wangdong.wdutils.utils;

import android.os.Handler;
import android.os.Message;

public abstract class DLAsycnTask {

    private DLWeakHandler handler = new DLWeakHandler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message message) {
            postTask();
            return false;
        }
    });
    /**
     * 在子线程之前执行的操作
     */
    public abstract void preTask();
    /**
     * 在子线程之中执行的操作
     */
    public abstract void doinBack();
    /**
     * 在子线程之后执行的操作
     */
    public abstract void postTask();
    /**
     * 执行
     */
    public void execute(){

        preTask();

        new DLAbsLoopThread(){
            @Override
            protected void loopRunInThread() {
                doinBack();
                handler.sendEmptyMessage(0);
                shutdown();
            }
        }.start();
    }
}
